S3バケット一覧のアクセス欄に表示される項目の詳細を教えてください。
困っていた内容
S3 を使用しています。
ブロックパブリックアクセスの設定や、バケットポリシーを変更していたところ、S3 コンソールのバケット一覧にて、アクセス欄が変化していることに気付きました。
アクセス欄にはどのような種類の記述がされますか?
どう対応すればいいの?
アクセス欄と同様の記述は、バケット設定からアクセス許可タブを開き、「アクセス許可の概要」から確認が可能です。
現時点では以下の 4 種類を確認しています。
1. 非公開のバケットとオブジェクト
S3 バケット作成時に、すべてデフォルトのままにするとこの状態になります。
以下の設定の際に、この表示になります。
- ブロックパブリックアクセスが ON
- バケットポリシーにて許可設定を記載していない、または、同一アカウントA/クロスアカウントBの IAM リソースからのアクセスを許可している
{ "Version": "2012-10-17", "Statement": [ { "Sid": "AccessAllowFromAccountUser", "Effect": "Allow", "Principal": { "AWS": [ "arn:aws:iam::<AccountA>:root", "arn:aws:iam::<AccountB>:root" ] }, "Action": "s3:GetObject", "Resource": [ "arn:aws:s3:::s3-permissions-overview/*", "arn:aws:s3:::s3-permissions-overview" ] } ] }
2. このアカウントの認証ユーザーのみ
以下の設定の際に、この表示になります。
- ブロックパブリックアクセスが ON
- バケットポリシーにて Principal: "*" を指定して、アクセス許可設定を記載している。
バケットポリシーの例
{ "Version": "2012-10-17", "Statement": [ { "Sid": "AccessAllowFromAnonymous", "Effect": "Allow", "Principal": "*", "Action": "s3:GetObject", "Resource": [ "arn:aws:s3:::s3-permissions-overview/*", "arn:aws:s3:::s3-permissions-overview" ] } ] }
3. オブジェクトは公開することができます
以下の設定の際に、この表示になります。
- ブロックパブリックアクセスが OFF
- バケットポリシーにて Principal: "*" を指定して、アクセス許可設定を記載していない。
4. 公開
- ブロックパブリックアクセスが OFF
- バケットポリシーにて Principal: "*" を指定して、アクセス許可設定を記載している。
{ "Version": "2012-10-17", "Statement": [ { "Sid": "AccessAllowFromAnonymous", "Effect": "Allow", "Principal": "*", "Action": "s3:GetObject", "Resource": [ "arn:aws:s3:::s3-permissions-overview/*", "arn:aws:s3:::s3-permissions-overview" ] } ] }
公開状態のバケットは S3 の URL でオブジェクトにアクセスできてしまいます。
静的ウェブサイトホスティングを行っている場合など、意図している場合以外では、この設定にならないようご留意ください。
参考資料
チュートリアル例: Amazon S3 リソースへのアクセスの管理 - Amazon Simple Storage Service
Amazon S3 ストレージへのパブリックアクセスのブロック - Amazon Simple Storage Service